package com.ledi.guns.modular.ledipay.service;

import java.util.Map;

import javax.servlet.http.HttpServletRequest;

import com.baomidou.mybatisplus.plugins.Page;
import com.ledi.guns.common.persistence.model.SmsSend;
import com.ledi.guns.common.persistence.model.vo.SmsBalanceVo;
import com.ledi.guns.common.persistence.model.vo.SmsSchoolUseVo;
import com.ledi.guns.common.persistence.page.PageQuery;
import com.ledi.guns.modular.ledipay.controller.feignClients.req.SchoolSmsUseReq;
import com.ledi.guns.modular.ledipay.controller.feignClients.req.SmsPackageReq;
import com.ledi.guns.modular.ledipay.controller.feignClients.req.SmsSchoolGiveReq;
import com.ledi.guns.modular.ledipay.controller.feignClients.req.SmsSchoolRecord;
import com.ledi.guns.modular.ledipay.controller.feignClients.req.SmsSchoolReq;
import com.ledi.guns.modular.ledipay.controller.req.sms.GetCode;
import com.ledi.guns.modular.ledipay.controller.req.sms.PromptPaymentReq;
import com.ledi.guns.modular.ledipay.controller.req.sms.SmsSendRecordReq;

/**
 * 文件名称： com.ledi.guns.modular.ledipay.service.SmsService.java<br/>
 * 初始作者： 钟小平<br/>
 * 创建日期： 2018年7月9日<br/>
 * 功能说明： 短信套餐Service<br/>
 * =================================================<br/>
 * 修改记录：<br/>
 * 修改作者 日期 修改内容<br/>
 * ================================================<br/>
 * Copyright (乐迪教育科技有限公司-幼儿事业部) 2017-2018.All rights reserved.<br/>
 */
public interface SmsService {

	Map list(Integer status);

	Map add(SmsPackageReq param);

	Map delete(SmsPackageReq param);

	void addSchoolSmsGive(SmsSchoolGiveReq param);

	Map officialPrice();

	Map smsSchoolList(SmsSchoolReq smsSchoolReq);

	void addSmsBuy(Long smsBuyCount);

	Map smsBuyList(PageQuery query);

	String getSmsBuyBalance();

	Map addSchoolRecord(SmsSchoolRecord param);

	Map<String, String> prePay(GetCode getCode, HttpServletRequest request);

	String scan(String userMobile, String orderNo, String sign);

	String prePayOrder(String orderNo);

	void alipayNotify(Map<String, String> params);

	void weixinNotify(String resultStr);

	int promptPayment(PromptPaymentReq param);

	Page<SmsSend> smsSchoolSendList(Page<SmsSend> page, SmsSendRecordReq query);

	SmsBalanceVo getSmsSchoolBalance();

	Map statusChange(SmsPackageReq param);

	void successCheckSchoolSmsRecord(String orderNo);

	SmsSchoolRecord getSchoolRecord(String orderNo);

	void giveSchoolsms();

	Page<SmsSchoolUseVo> smsSchoolUseList(Page<SmsSchoolUseVo> page, SchoolSmsUseReq schoolSmsUseReq);

}
